pub fn test() {}
fn base() {
    let mut count = 0u32;
    loop {
        count += 1;
        if count == 3 {
            println!("three");
            continue;
        }
        println!("{}", count);
        if count == 10 {
            println!("OK, that's enough");
            break;
        }
    }
}
/**
 * 在处理嵌套循环的时候可以 break 或 continue 外层循环。
 * 在这类情形中，循环必须 用一些 'label（标签）来注明，并且标签必须传递给 break/continue 语句。
 */
fn nested() {
    'outer: loop {
        println!("Entered the outer loop");
        let mut counter = 0;
        /*'inner: */
        loop {
            println!("Entered the inner loop");
            // 这只是中断内部的循环
            if counter == 10 {
                break;
            }
            counter += 1;
            // 这会中断外层循环
            if counter > 5 {
                break 'outer;
            }
        }

        println!("This point will never be reached");
    }
    println!("Exited the outer loop");
}
fn returned() {
    let mut count = 0;
    let result = loop {
        count += 1;
        if count == 18 {
            break count * 2;
        }
    };
    assert_eq!(result, 20);
}
